Adobeは、来るべきAdobe Flex 3.0のリリース(2008年初め予定)に向けて熱心に取り組んでいる。Adobe Flex(サイト・英語)は、Flash Player搭載のブラウザまたはAdobe AIR搭載のデスクトップで動作するリッチインターネットアプリケーションを構築するための開発者用ツールセットである。InfoQは、このリリースについて詳細情報を得るため、Adobeのテクニカルエバンジェリストを務めるJames Ward氏に話を伺った。今回同氏が語ってくれた情報に加えて、同氏のブログ(jamesward.org)(source)においても詳細を読むことができる。
まず、Ward氏はFlex 3 SDKおよびFlex Builder 3が実現する追加機能とアップデートから話し始めた。
Flex 3のベータ版はすでに公にリリースされていますが、無償のFlex 3 SDKとFlex Builder 3にはともに大幅な変更が加えられています。また、同氏に変更について詳しく説明してもらった。
最も注目すべき変更の一部を以下に紹介します。Flex Builder内での新しいメモリ/パフォーマンスプロファイラ Adobe Integrated Runtime(AIR)を利用するアプリケーション作成のサポート ActionScriptクラス名のリファクタリング Persistent Framework Cacheを使用する際、アプリケーションの初回起動時間を大幅に改善 Flex BuilderのDesign Viewが大幅に向上
Flex 3の最も優れた新機能の1つが、Persistent Framework Cacheです。これがあると、あるRIAへの訪問者が別の誰かのFlexアプリケーションを訪問済みである場合、そのFlash Player Cache内にはすでに495KBのFlex Frameworkを持つ見込みとなります。これは、ユーザがこれからダウンロードする必要があるアプリケーションサイズを飛躍的に小さくします。これによって、多くのアプリケーションでは初回アプリケーションダウンロードが100k未満に低減します。
Flex Builder 3のまた別の優れた機能として、メモリ/パフォーマンスプロファイラがあります。これによって、アプリケーションがメモリリークを引き起こす可能性のある箇所を正確に把握したり、パフォーマンスのボトルネックとなり得る箇所を確認したりすることができます。
Advanced DataGridなどの新しいコンポーネントの追加やCharting Componentsへの改良に加えて、Flexには基本的な改良が多数行われています。例えば、アクセシビリティやランタイムのローカリゼーション、組み込みディープリンクのサポート(ブラウザの「戻る」機能、ブックマーキングなど)への改良などが見られます。
Flex 3に搭載予定の機能の完全なリストについては、以下のロードマップを参照してください。:
The Flex 3 SDK Roadmap http://flexwiki.adobe.com/confluence/display/ADOBE/Flex+3+Planning(英語)
The Flex Builder 3 Roadmap http://flexwiki.adobe.com/confluence/display/ADOBE/Flex+Builder+3+Planning(英語)
InfoQは、Flex 3における変更がフレームワークのオープンソース化プロセスにどのように適合するか、またオープンソース化への取り組み状況の最新情報について尋ねた。
Flex SDKのオープンソース化への取り組みは順調に進行中です。実際、プロジェクトのオープンソース化には、Flex SDKと同様の膨大な時間を費やす必要があります。Sun JDKと同じく、これは一夜にして起こるものではありません。当社の目標は、Flex 3 のリリースまでにFlex SDKを完全にオープンソース化することです。途中のタスクの一部はすでに完了しています。当社には、オープンソースへの取り込みに関する項目の議論を目的とした「flex-open-source」という名のGoogle Groupのメーリングリストがあります。また現在では、Flex用の完全なバグデータベース(過去のバグもすべて網羅)を公のJIRAシステムに移動済みです。ユーザーはbugs.adobe.com/flexにてアカウントの作成、バグのファイリング開始、バグの投票などが行えます。また、Flexロードマップを以下に公開しており、誰でも利用可能です。: http://bugs.adobe.com/confluence/display/ADOBE/Home(英語)Flex 3のライセンス供与について。
Flex 3 SDKは無償で、MPLライセンスとなる可能性が最も高いと思われます。MPLソフトウェアをバンドルできないOEMのためのデュアルライセンスも提供する予定です。Flex Builder 3のライセンス供与については未発表です。続いて、RIAマーケットにおけるMicrosoftの参入となるSilverlightについてWard氏に尋ねた。
Microsoftは厳密にはRIAマーケットに参入したわけではありません。同社は、Web上でビデオを中心とする新しいプラットフォームを構築していますが、これはRIAプラットフォームの一面です。ただし、Silverlight VC1ビデオコーデックの質に誘発され、Adobeは当初計画していた時期よりも早く、より質の高いH.264コーデックをリリースすることとなりました。また、Flashにおいてフルスクリーン1080pビデオ再生をサポートするためのハードウェアビデオスケーリングも追加しました。Ward氏はFlexとSilverlightの違い、および一般的な開発者がFlexを選択するメリットについても詳しく語ってくれた。
RIAに関してFlexがSilverlightの数年先を進んでいるという最も重大な局面の1つは、当社のコンポーネントライブラリです。Silverlightを使用すると、UI全体をほとんどすべて最初から構築しなければなりません。FlexコミュニティおよびAdobeは、DataGrid、Accordion、TabNavigator、およびChartなど、スキン変更や拡張が可能な数百ものコンポーネントを提供しています。当社が数年先を進んでいるまた別の局面としては、RIA構築に欠かせないアクセシビリティ、国際化、ディープリンク、ユニットテスト、自動化テスト、データバインディング、エフェクト、およびドラッグ&ドロップ管理へのサポートなどがありますが、その他にも数え上げたらきりがありません。Flexに含まれるコンポーネントについては、Flex Component Referenceドキュメント(source)を閲覧するか、Flex 2 Component Explorer(source)またはFlex 2 Style Explorer(source)にて確認できます。 その他のコミュニティのコンポーネントリストについては、flexbox (source)および Flex Component Exchange(source) をご覧下さい。Adobe Integrated Runtime(AIR)を取り巻く熱狂に関して、InfoQはFlex 3とAIRがどのように適合するかを尋ねた。
Silverlightでは、Silverlightプロジェクト内で直接使用できるXAMLマークアップを生成する、Expression Blend技術が利用可能です。Flexでは、設計者はPhotoshop、Illustrator、およびFlash CS3などのツールを使用して資産をバイナリオブジェクト(ビットマップやswf)としてエクスポートし、続いて開発者がこれらの資産をFlex内のスキンやコンポーネントとして使用します。
FlexとSilverlightの最大の違いの1つは、導入面です。インターネットに接続されたPCの90%には、Flexアプリケーション用のランタイムがすでにインストールされています。Flash Playerは世界で最も導入速度が速く、インストール量が最も多いソフトウェアです。Silverlightはこの種の勢いを持つ導入面が欠如しているため、比べようもありません。
これらの構築RIAにおいて、現在ではFlexに勝る選択肢はありません。Flexは、間もなくオープンソース化される無償のSDK、Eclipseベースの優れた開発者向けツール、および巨大なコミュニティに支えられています。Flexの背後で勢いが高まっているのは明白です。
Adobe Integrated Runtime(AIR)は、Flex、Flash、Ajax、およびHTMLアプリケーション向けのデスクトップランタイムです。AIRを使用すると、開発者は既存のスキルと既存のコードを何度でも使用して、デスクトップ上で動作する、追加機能を備えたアプリケーションを構築できます。AIRアプリケーションは、システムリソースへのアクセス、システムのドラッグ&ドロップ機能との統合、システム通知の表示などを行ったり、組み込みデータベースにデータを保存したりすることができます。開発者は、Flex 3 SDKおよびFlex Builder 3を使用してAIRアプリケーションを簡単に構築できます。また、より多くのカスタムブランド経験とオフライン作業を有するRIAを開発者が簡単に構築できるようになります。InfoQは、Flex拡張を備えたFlash CS3との棲み分けについて、またさらにFlex Builderの存在についても明確な説明を求めた。
すでにeBayやSalesforceなどの大企業がAIRを使用しています。AIRを取り巻く熱狂の主な要因は、多くのアプリケーションが、ブラウザに存在するレベル以上の機能やカスタマイズ性を必要としていることにあります。AIRは、Mozilla Tamarin(Flash PlayerのVM), Webkit(Safari内のHTMLレンダリングエンジン)、およびSQLLiteなどのオープンソース技術も使用して構築されています。
Flash CS3は依然として設計者がFlashコンテンツを構築する主要ツールで、Flexは開発者がFlashベースのアプリケーションを構築する主要ツールです。当社はCS3リリースの直後、設計者がリッチインターネットアプリケーションを構築するときの共同作業を容易にするFlash CS3用のFlex Component Kitをlabs.adobe.comに掲載しました。これによって、設計者がCS3内に作成した資産をFlex開発者に渡し、Flex開発者がこれらの資産をアプリケーション内で使用することが可能になります。Component Kitの使用についての優れたウォークスルーが以下で閲覧できます。Ward氏は、Flex 3におけるFlash Playerランタイム要件についての情報を提供してくれた。
http://adobedev.adobe.acrobat.com/p75214263/(英語)
Flex 3は、Flex 2と同じランタイム、Flash Player 9を必要とします。ただし、開発者はFlash Player内の新機能を活用したい場合、より新しいバージョンを必要とする選択を行うかもしれません。Persistent Framework CacheおよびH.264のサポートには、現在ベータ版であるFlash Player 9の最新バージョンが必要となります。開発者は、ユーザーのFlash Playerバージョンを確認して、新機能を利用しないでおくことも、新しいバージョンの高速インストールを開始することもできます。高速インストールは1回のクリックで1MBのダウンロードです。しかし、Flash Player 9の初回リリースを超えた機能をどのように、いつ使用するかは開発者の自由です。
Flash Playerの新しいバージョンは、80%の採用に達するまで9か月かかり、90%の採用に達するまでは12か月かかります。Flash Player採用統計の詳しい分析については、Emmy Huang氏(Flash Player製品マネージャ)のブログ (http://weblogs.macromedia.com/emmy/(英語))で確認できます。
締めくくりとして、Ward氏はlabs.adobe.com(サイト・英語)にてFlex 3ベータ版をぜひチェックしてほしいと語った。バグのログはすべてbugs.adobe.com/flex(サイト・英語)に保存されている。最後に、同氏はFlexの使用を開始ようとしている開発者へのリソースとして、Flexcoders(サイト・英語) Yahoo GroupとAdobe MXNA(サイト・英語)ニュースアグリゲータを提供してくれた。(※編集部注:日本ではFlex User Group(FxUG)が有名ですね)